package com.neuedu.demoweb.dao;

import java.util.List;

import com.neuedu.demoweb.common.Pager;
import com.neuedu.demoweb.common.WebException;



/**
 * 使用泛型定义的，通用的数据库操作接口,定义了常用的数据库操作方法
 * 
 * @author chens
 * @param <T>
 */
public interface BaseDao<T> {

	/**
	 * 新增
	 * 
	 * @param object
	 * @return
	 * @throws ElmException
	 */
	public boolean add(T object) throws WebException;

	/**
	 * 根据主键修改
	 * 
	 * @param object
	 * @return
	 * @throws ElmException
	 */
	public boolean edit(T object) throws WebException;

	/**
	 * 根据主键删除
	 * 
	 * @param id
	 * @return
	 * @throws ElmException
	 */
	public boolean deleteById(Integer id) throws WebException;

	/**
	 * 查询所有
	 * 
	 * @return
	 * @throws ElmException
	 */
	public List<T> findList() throws WebException;

	/**
	 * 根据主键查询
	 * 
	 * @param id
	 * @return
	 * @throws ElmException
	 */
	public T findById(Integer id) throws WebException;

	/**
	 * 分页查询
	 * 
	 * @param pager
	 * @return
	 * @throws ElmException
	 */
	public List<T> search(Pager<T> pager) throws WebException;

	/**
	 * 查询记录总数
	 * 
	 * @param pager
	 * @return
	 * @throws ElmException
	 */
	public int findTotal(Pager<T> pager) throws WebException;
}
